<?php
class WaterMark{
	
		/**
		 * $imagename 图像名称 路径信息
		 * $CanvaW 	缩略图长
		 * $CanvaH 缩略图宽
		 * $createtrue 是否生产图片 yes no 两选项
		 */
		public $ThumPath; //保存缩略图路径
		
	public function ThumImg($imagename,$CanvaW=100,$CanvaH=100,$createtrue,$path,$filename){
//		获取文件类型
		$img = getimagesize($imagename);
//		获取文件类型 截取字符串/后边的类型
		$type = ltrim(strrchr($img['mime'], '/'),'/');
//		定义头部解析
//		header('Content-type:image/'.$type);
		//创建画布 
		$CanvaImg = imagecreatetruecolor($CanvaW, $CanvaH);		
//      加载需要缩放的图片
		$srcImg = imagecreatefromjpeg($imagename);
//		获取图像布长宽
		$srcW = imagesx($srcImg);
		$srcH = imagesy($srcImg);
//      生成图像  
		imagecopyresized($CanvaImg, $srcImg, 0, 0, 0, 0, $CanvaW, $CanvaH,$srcW,$srcH);
//		生成
		switch ($createtrue){
			case 'no';  //传值no不生成图片
			imagejpeg($Canvas);
			break;
			case 'yes';  //传值yes生成图片
//			$path= './upload';
			is_dir($path) || mkdir($path,0777,true);
			$ThumPath =$path .'/'.  $filename .'_thumb_'.$CanvaW.'X'.$CanvaH. '.' . 'jpg' ;  //$type  指定只能上传jpg格式
			$this->ThumPath = $ThumPath;
			imagejpeg($CanvaImg,$ThumPath);
			return $ThumPath;
			break;
		}
//		imagejpeg($CanvaImg);
		imagedestroy($CanvaImg);
		imagedestroy($srcImg);
	}
	
	
	/**
	 * $imagename; //目标图
	 * $LogoImg;  //水印logo图像	
	 * $position; 	//水印位置  取值范围：   TopLeft TopRight  Center  BottomLeft  BottomRight
	 */
	
//	水印
	public function Mark($imagename,$LogoImg,$position,$createtrue){
//		获取文件类型
		$img = getimagesize($imagename);
//		获取文件类型 截取字符串/后边的类型
		$type = ltrim(strrchr($img['mime'], '/'),'/');
//		定义头部解析
//		 header('Content-type:image/'.$type);
//		加载图像
		 $Canvas = imagecreatefromjpeg($imagename); //目标图加载
 //		获取目标图长宽
		$CanvasW = imagesx($Canvas);
		$CanvasH = imagesy($Canvas);
//		加载水印图像
		$LogoPng = imagecreatefrompng($LogoImg);
//		获取水印长宽
		$LogoPngW = imagesx($LogoPng);
		$LogoPngH = imagesy($LogoPng);
//		水印位置  left——top  right-top  bottom-left bootom-right  center
		switch ($position){
			case 'TopLeft';
				$LogoX =  0+10;
				$LogoY =  0+10;
				break;
			case 'TopRight';
				$LogoX =  $CanvasW-$LogoPngW-5;
				$LogoY =  0;
				break;		
			case 'Center';
				$LogoX =  ($CanvasW-$LogoPngW)/2;			
				$LogoY =  ($CanvasH-$LogoPngH)/2;
				break;
			case 'BottomLeft';
				$LogoX =  0+5;
				$LogoY =  $CanvasH-$LogoPngH-5;
				break;
			case 'BottomRight';
				$LogoX =  $CanvasW-$LogoPngW-5;
				$LogoY =  $CanvasH-$LogoPngH-5;
				break;
		}
		 
//		合成
		imagecopy($Canvas, $LogoPng, $LogoX,  $LogoY, 0, 0, $LogoPngW, $LogoPngH);
//		生成
		switch ($createtrue){
			case 'no';  //传值no不生成图片
			imagejpeg($Canvas);
			break;
			case 'yes';  //传值yes生成图片
			$path= '../upload';
			is_dir($path) || mkdir($path,0777,true);
			imagejpeg($Canvas,$path .'/'. time() . mt_rand(0, 9999) . '.' . $type );
			break;
		}
		
//		释放内存
		imagedestroy($Canvas);
		imagedestroy($LogoPng);
	}	
}
// $imgs = array('./images/gcjd1.jpg','./images/gcjd2.jpg','./images/h1.jpg','./images/h2.jpg','./images/h3.jpg','./images/h4.jpg','./images/h5.jpg','./images/h6.jpg','./images/h7.jpg','./images/h8.jpg','./images/h9.jpg');

// $img = mt_rand(0, 2);
// $positions = array('TopLeft', 'TopRight',  'Center',  'BottomLeft',  'BottomRight');
// $posi = mt_rand(0, 4);
// $test = new WaterMark();
// //$test->ThumImg($imgs[1],200,200);
// $test->Mark(,'./logo.png',BottomRight,'yes');




















?>